<?php
namespace gnomephp\helper\lang;

class LangFile{
	
	private $vars=array();
	
	
	
	/**
	 * 
	 * Loads language variables into the helper class into it's own instance.
	 * 
	 * @param string $langFile A file name, example ways: form, validation etc.
	 * @param string $lang The wanted language, eg. english, swedish or norwegian etc.
	 * @param string $ext The file extension, the default is ".yml".
	 * @throws LangFileException
	 */
	public function __construct($langFile, $lang='english', $ext='.yml'){
		
		$relPath = DIRECTORY_SEPARATOR . $lang . DIRECTORY_SEPARATOR . $langFile . $ext;
		
		$pathApp = GNOME_APP_PATH . DIRECTORY_SEPARATOR . 'language' .  $relPath;
		$pathFw = GNOME_FW_PATH . DIRECTORY_SEPARATOR . 'res' . DIRECTORY_SEPARATOR . 'language' . $relPath;
		if (file_exists($pathApp)){
			$this->vars = \gnomephp\yaml\sfYaml::load(file_get_contents($pathApp));
		}elseif (file_exists($pathFw)){
			$this->vars = \gnomephp\yaml\sfYaml::load(file_get_contents($pathFw));
		}else{
			throw new LangFileException("Could not locate $langFile$ext in language directories App: $pathApp or FW: $pathFw.", LangFileException::FILE_NOT_FOUND);
		}		
	}
	
	/**
	 * Gets a array key from the language file.
	 * @param string $var
	 */
	public function get($var){
		return $this->vars[$var];
	}
	
	/**
	 * Gets all the language variables.
	 */
	public function getVars(){
		return $this->vars;
	}
	
	
	
}